const labelService = require('../service/label.service');

class LabelController {

  // 创建一个标签
  async create(ctx, next) {
    // 1.获取参数
    const { name } = ctx.request.body;
    const { id } = ctx.user;
    // 2.操作数据库
    const result = await labelService.create(name, id);
    // 3.返回结果
    ctx.body = result;
  }

  // 动态添加标签
  async addLabel(ctx, next) {
    // 1.获取参数
    const { momentId } = ctx.params;
    const { labelId } = ctx.request.body;
    // 2.操作数据库
    const result = await labelService.addLabel(momentId, labelId,);
    // 3.返回结果
    ctx.body = result;
  }

  // 动态移除标签
  async removeLabel(ctx, next) {
    // 1.获取参数
    const { momentId } = ctx.params;
    const { labelId } = ctx.request.body;
    // 2.操作数据库
    const result = await labelService.removeLabel(momentId, labelId);
    // 3.返回结果
    ctx.body = result;
  }

  // 删除一个标签
  async remove(ctx, next) {
    // 1.获取参数
    const { labelId } = ctx.params;
    // 2.删除操作
    const result = await labelService.remove(labelId);
    // 3.返回结果
    ctx.body = result;
  }

  // 获取全部标签
  async list(ctx, next) {
    // 1.获取参数
    const { id } = ctx.user;
    // 2.获取结果
    const result = await labelService.list(id);
    // 3.返回结果
    ctx.body = result;
  }


}

module.exports = new LabelController();
